<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 函数的参数 ：一、形参（定义函数的时候传递的参数，形参是自定义的） 
        //  二、实参（调用函数时候传递的参数）

        // 定义一个函数
        // function fn(a,b,c,d){ // 形参
        //     // var a,b,c,d;
        //     console.log(a,b,c,d);
        // }

        // // 函数的调用 :把实参 赋值给形参
        // // 实参 可以接受任意类型
        // fn(1,"2",undefined,null);
        // a = 1 ; b =2 ;c=undefined ;d =null


        // 注意 ：多数情况下 形参 和实参的数量 是一样的
        // 1.实参比形参多
        // var fn = function(a,b){
        //     console.log(a,b)
        // }
        // fn(1,2,3);
        // 2.实参比形参少 ：不够的形参 就是 undefined
        // var fn = function(a,b,c){
        //     console.log(a,b,c);
        // }
        // fn(1,2);


        // 扩展 ：函数的默认参数

        // 可以给 a 和 b 默认值 ：如果有实参传入 就按照实参的赋值 。如果没有参数传入那么就取默认值；
        // function add(a,b){
        //     var a = a || 1;
        //     var b = b || 2;
        //     console.log(a+b);
        // }

        // // add(1,2);
        // // add(3,4);
        // add(); 

        // 行和列 ： 封装一个函数  把行和列 作为参数传入函数中 生成图形；
        // 绘制3个图形 第一个 是 3行3列  
        // 第二个 绘制 5行4列 第三个绘制 6行6列表
        /* 

        ****
        ****
        ****
        
        */

        // function fn(a,b){
        //     for(var i=0;i<a;i++){
        //         for(var j=0;j<b;j++){
        //             document.write("*");
        //         }
        //         document.write("<br>");
        //     }
        // }
        // fn(3,3);
        // fn(5,4);
        // fn(6,6);




    </script>
</body>
</html>